package com.gpstracking.Servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.google.gson.Gson;
import com.gpstracking.BE.Usuario;
import com.gpstracking.BL.NotificacionBL;

/**
 * Servlet implementation class ServletCreateArea
 */
public class ServletNotificacion extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public ServletNotificacion() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
    //voy a usarlo como getarea
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html");
		//falta agregar esto.. deberia tener en texto toda la informacion que quiero q tenga del area (como quien entro la ultima vez x ejemplo).. puede incluir links a imagenes
		PrintWriter out = response.getWriter();
		out.println("Esta es la informacion del dispositivo que quiero que se muestre =D");
		out.flush();
		//tmb podria utilizar json.. pero dsps
		out.close();
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		boolean res = false;
		try{
			String nombre = request.getParameter("nombre");
			String descripcion = request.getParameter("descripcion");
					
			String str_dispositivos = request.getParameter("dispositivos");
			String str_condiciones = request.getParameter("condiciones");
			
			//System.out.println(nombre + " " + descripcion + " " + str_dispositivos + " " + str_condiciones);
			
			String [] d_ids = new Gson().fromJson(str_dispositivos, String[].class);
			
			String [] c_ids = new Gson().fromJson(str_condiciones, String[].class);
			
			List<Integer> dispositivos = new ArrayList<Integer>();
			List<Integer> condiciones = new ArrayList<Integer>();
			
			for( int i = 0 ; i < d_ids.length; i++ ) dispositivos.add( Integer.parseInt(d_ids[i]) );
			for( int i = 0 ; i < c_ids.length; i++ ) condiciones.add( Integer.parseInt(c_ids[i]) );
			
			
			NotificacionBL controller = new NotificacionBL();
			
			HttpSession session = request.getSession(true);
			Usuario usuario = (Usuario)session.getAttribute("user");

					
			res = controller.registrar(nombre, descripcion, condiciones, dispositivos, usuario );
			
			
		}catch (Exception e) {
			res = false;
			e.printStackTrace();
		}
		
		if ( res ){
			
			out.print("1");
		}else{
			
			out.print("0");
		}
		
		
	

	}

}
